package model

import (
	"gorm.io/gorm"
	"time"
)

type ExamTest struct {
	Id                          uint64         `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	CreatedAt                   time.Time      `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt                   time.Time      `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
	DeletedAt                   gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
	ExamType                    string         `gorm:"column:exam_type;type:varchar(255);comment:试题类型;not null;" json:"exam_type"`                                             // 试题类型
	Difficulty                  string         `gorm:"column:difficulty;type:varchar(255);comment:难度;not null;" json:"difficulty"`                                             // 难度
	FirstLevelProfessionalScope string         `gorm:"column:first_level_professional_scope;type:varchar(255);comment:专业范围一级;not null;" json:"first_level_professional_scope"` // 专业范围一级
	TwoLevelProfessionalScope   string         `gorm:"column:two_level_professional_scope;type:varchar(255);comment:专业范围二级;not null;" json:"two_level_professional_scope"`     // 专业范围二级
	User                        string         `gorm:"column:user;type:varchar(255);comment:作者;not null;" json:"user"`                                                         // 作者
	Title                       string         `gorm:"column:title;type:varchar(255);comment:试题题目;not null;" json:"title"`                                                     // 试题题目
	TestOptions                 string         `gorm:"column:test_options;type:char(4);comment:试题选项：A、B、C、D;not null;" json:"test_options"`                                    // 试题选项：A、B、C、D
	OptionAnswer                string         `gorm:"column:option_answer;type:char(4);comment:选项答案：A、B、C、D;not null;" json:"option_answer"`                                  // 选项答案：A、B、C、D
	Analysis                    string         `gorm:"column:analysis;type:varchar(255);comment:答案解析;not null;" json:"analysis"`                                               // 答案解析
	Keywords                    string         `gorm:"column:keywords;type:varchar(255);comment:关键字;not null;" json:"keywords"`                                                // 关键字
	UserId                      uint64         `gorm:"column:user_id;type:bigint;comment:作者工号;not null;" json:"user_id"`                                                       // 作者工号
	CreateUser                  string         `gorm:"column:create_user;type:varchar(255);comment:创建人;not null;" json:"create_user"`                                          // 创建人
	CreateUserId                uint64         `gorm:"column:create_user_id;type:bigint;comment:创建人工号;not null;" json:"create_user_id"`                                        // 创建人工号
	CreateUserName              string         `gorm:"column:create_user_name;type:varchar(255);comment:创建人姓名;not null;" json:"create_user_name"`                              // 创建人姓名
	Status                      uint64         `gorm:"column:status;type:bigint;comment:启用状态：1-启用，2-停用;not null;" json:"status"`                                               // 启用状态：1-启用，2-停用
	Reviewer                    uint64         `gorm:"column:reviewer;type:bigint;comment:审核人: 1-审核人员，2-普通用户;not null;" json:"reviewer"`                                       // 审核人: 1-审核人员，2-普通用户
	AuditPersonnelNumber        uint64         `gorm:"column:audit_personnel_number;type:bigint;comment:审核人工号;not null;" json:"audit_personnel_number"`                        // 审核人工号
	Administrators              uint64         `gorm:"column:administrators;type:bigint;comment:管理员：1-管理员，2-非管理员;not null;" json:"administrators"`                             // 管理员：1-管理员，2-非管理员
}

func (u *ExamTest) TableName() string {
	return "exam_test"
}
